import paramiko
def sshExeCMD():
    ssh_client=paramiko.SSHClient()
    #加上这行代码后，即使公钥不在known_hosts里，也不会报Server '10.4.7.24' not found in known_hosts
    #相当于在linux上手工敲了一下yes
    ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh_client.connect(hostname="10.4.7.24",port=22,username="root",password="1")
    #链接主机成功后，可以在目标主机执行cmd命令
    """
    1、标准输入       用于实现交互式命令
    2、标准输出       保存命令的正常执行结果
    3、标准错误输出    保存命令的错误信息（如果输入的命令报错了，则会存在这里）
    """
    #stdin,stdout,stderr对应的是上面的三个标准输入，标准输出，标准错误输出
    stdin,stdout,stderr=ssh_client.exec_command("hostname")
    #print(stdin.read())
    print(stdout.read())

    #print(stderr.read())

    #最后关闭远程链接
    ssh_client.close()


#得在10.4.7.2得到公钥后放在known_hosts里，才可以连上他
if __name__ == '__main__':
    sshExeCMD()